package com.bdqn.petmalldemo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bdqn.petmalldemo.bo.PasswordQuestionBo;
import com.bdqn.petmalldemo.bo.QuestionRecoverBo;
import com.bdqn.petmalldemo.bo.UserLoginBo;
import com.bdqn.petmalldemo.bo.UserRegisterBo;
import com.bdqn.petmalldemo.entity.User;

import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Lenovo
 * @since 2020-02-10
 */
public interface UserService extends IService<User> {
    /**
     * 用户注册
     * @param userRegisterBo 用户注册条件实体类
     */
    void  userRegister(UserRegisterBo userRegisterBo);

    /**
     * 用户登录
     * @param userRegisterBo 用户登录条件实体类
     * @param ipAddress  用户登录ip地址
     */
    User userLogin(UserLoginBo userRegisterBo,String ipAddress);

    /**
     * 新增或修改安全问题
     * @param questionRecoverBo
     */
    void questionRecover(QuestionRecoverBo questionRecoverBo);

    /**
     * 根据用户名和邮箱获取安全问题
     * @param passwordQuestionBo
     * @return
     */
    String getPasswordQuestion(PasswordQuestionBo passwordQuestionBo);

    /**
     * 校验安全问题答案是否准确
     * @param passwordQuestionBo
     */
    String passwordRecover(PasswordQuestionBo passwordQuestionBo);

    /**
     * 查询会员信息
     * @return
     */
    Map<String,Object> searchMember(Integer status,String keyword);

    /**
     * 根据用户Id禁用或激活用户
     * @param userId 要修改状态的用户Id
     * @param status 要修改的状态
     */
    void updateStatus(String userId,Integer status);

    /**
     * 检查当前用户是否被禁用
     * @param userId 要检查的用户Id
     * @return
     */
    boolean checkActive(String userId);
}
